#ifndef THREAD5_H
#define THREAD5_H

#include <stdint.h>
#include <pthread.h>
#include "log_utils.h"

// 接近传感器GPIO引脚定义
#define PROXIMITY_SENSOR_2_GPIO "2_D4_d"  // 第二个接近传感器使用的GPIO引脚

// 接近传感器状态
typedef struct {
    uint8_t sensor2_state;     // 第二个接近传感器状态：0表示检测到物体(有效)，1表示未检测到(无效) - 低电平有效
    uint32_t timestamp;        // 时间戳
} proximity_sensor2_t;

// 全局变量声明
extern proximity_sensor2_t g_proximity_sensor2;
extern pthread_mutex_t g_proximity_sensor2_mutex;

// 线程5函数声明
void *thread5_function(void *arg);

// 获取接近传感器状态的函数
int get_proximity_sensor2_state(proximity_sensor2_t *state);

// 调试函数：手动测试GPIO状态
void debug_proximity_sensor2_gpio(void);

// GPIO初始化函数
int init_gpio_sensor2(const char *gpio_pin);

// 读取GPIO状态函数
int read_gpio_state2(const char *gpio_pin);

// 清理GPIO资源函数
void cleanup_gpio_sensor2(const char *gpio_pin);
 
#endif /* THREAD5_H */ 